mybatis plus in方法使用说明
如果是List类型的String,例如:List<String>这种类型的,就直接放值就可以了,本文讲的是当你查询到的是一个list集合如何遍历取值,否则要写sql和接口就显得很麻烦。步骤如下://查询到list集合List<User> userList = userService.selectById(id);//结果集List<String> resultList = new ArrayList<>();//遍历集合取值 userList .fo...
2024-01-10mybatis plus自动更新数据问题?
@Componentpublic class MyMetaObjectHandler implements MetaObjectHandler { @Override //插入时候处理 public void insertFill(MetaObject metaObject) { System.out.println("insertFill"); System.out...
2024-03-03mybatis-plus 双主键怎么使用注解
在authorization表里有两个主键:DEVICE_ID,PERSON_ID。mybatis-plus 该怎么添加注解呢,如果两个属性我都添加@TableId注解会报错无法通过编译@Data@TableName("authorization")public class Authorization extends BaseEntity{// @TableId("DEVICE_I...
2024-03-15mybatis-plus 版本不兼容问题的解决
mybatis-plus 版本不兼容问题1,mybatis-plus 版本中存在一个问题。2,mybatis-plus-extension 版本为v3.2.1.1-SNAPSHOT 以上版本时使用其PaginationInterceptor分页插件时。3,mybatis-plus-core 版本也需要升级到v3.2.1.1-SNAPSHOT以上。4,因为在PaginationInterceptor类中此位置使用了mybatis-plus-core包中toolkit/StringUtils工具类中的isNot...
2024-01-10关于mybatis plus 中的查询优化问题
传统的mybatis plus 查询写法对于常规的mybatis单表查询,我们既可以采用LambdaQueryWrapper查询,也可以使用QueryWrapper查询。LambdaQueryWrapper具有防误写、规范代码等好处,但是缺点是无法在复杂的多表查询中使用。相比较来说,使用QueryWrapper编写查询更加灵活,可以适应更复杂的查询场景。我们首先看一个...
2024-01-10mybatis plus代码生成器配置过程解析
这篇文章主要介绍了mybatis plus代码生成器配置过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下最近在玩项目,发现自己写严重浪费时间~于是想到了代码生成器,之前用过一次的mybatis-plus,再重新实现了一下确保修改好对应的配置即...
2024-01-10解决mybatis plus 驼峰式命名规则问题
在我们使用mybatis plus 时, mybatis plus 可以帮我们自动封装我们的实体类用来查询添加,当我们遇见我们的尸体类名与我们的表字段是驼峰写法时: 我们在数据库的字段名也是 userCode但是如果我们不设置mybstis plus 默认的驼峰式编码在mybatis plus 则会默认把驼峰式编码写成 user_code, 这种下划线格式的字...
2024-01-10mybatis-plus 处理大数据插入太慢的解决
大批量数据插入方法是Mybatis的foreach拼接SQL我发现不管改成Mybatis Batch提交或者原生JDBC Batch的方法都不起作用,实际上在插入的时候仍然是一条条记录的插,速度远不如原来Mybatis的foreach拼接SQL的方法。// 第一步判断更新或添加 String[] splitUserId = userGroup.getUserId().split(","); String[] spiltUserName = userGroup.get...
2024-01-10mybatis获取执行的sql语句
package com.jcl.orm.tkmapper.intercept;import com.alibaba.dubbo.common.utils.CollectionUtils;import org.apache.ibatis.executor.Executor;import org.apache.ibatis.mapping.BoundSql;import org.apache.ibatis.mapping.MappedStatement;import org.apache.ibatis.mapp...
2024-01-10mybatis添加自定义sql语句
我一般使用mybatis-plus,但是在维护旧代码的时候发现使用的是xml这样的mybatis, 需要使用动态的sql语句,所以要自定义sql语句1.xml里面设置,resultMap是自己定义的类对象,也可以使用map<select id="selectQuestionForDownload" resultMap="getKnowledgeQuestionMap" parameterType="java.lang.String"> ${_parameter}</select>2.mapper设置,...
2024-01-10mybatis plus使用redis作为二级缓存的方法
建议缓存放到 service 层,你可以自定义自己的 BaseServiceImpl 重写注解父类方法,继承自己的实现。为了方便,这里我们将缓存放到mapper层。mybatis-plus整合redis作为二级缓存与mybatis整合redis略有不同。1. mybatis-plus开启二级缓存mybatis-plus.configuration.cache-enabled=true2. 定义RedisTemplate的bean交给spring管理,这里...
2024-01-10Mybatis plus 多字段如何加密不同密码?
User对象public class User { @TableField(typeHandler = EncryptTypeHandler.class) private String password; @TableField(typeHandler = EncryptTypeHandler.class) private String mobile;...
2024-03-05Mybatis plus实现Distinct去重功能
不啰嗦,上菜 QueryWrapper queryWrapper = new QueryWrapper(); queryWrapper.select("DISTINCT no,name").orderByAsc("no"); return mapper.selectList(queryWrapper);PS:顺便一提,指明查询出后的结果输出类型,可以参考如下: QueryWrapper<TablePo> queryWrapper = new QueryWrapper<>(); queryWrapper.se...
2024-01-10mybatis-plus实体类主键策略有3种(小结)
mybatis plus 实体类主键策略有3种( 注解 > 全局 > 默认 )当IdType的类型为ID_WORKER、ID_WORKER_STR或者UUID时,主键由MyBatis Plus的IdWorker类生成,idWorker中调用了分布式唯一 ID 生成器 - Sequence1.注解方式@TableId(type = IdType.AUTO)在实体类增加注解即可@TableName("t_article")public class TArticle extends Model<TArticle>...
2024-01-10基于Mybatis plus 自动代码生成器的实现代码
1.使用的是maven项目,添加依赖<!-- mybatis-plus begin --> <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <version>2.2.0</version> </dependency> 还有数据库的连接<dependency> <groupId>mysql</groupId> <artifactId>m...
2024-01-10mybatis-plus怎么选择oracle的表空间?
大家好,本人小白,第一次使用oracle,我使用mybatis-plus操作oracle(yml中配置的账户可以查看多个表空间)的时候遇到如下两个问题:一、执行查询的时候提示没有指定表,打印sql语句类似如下:select id from aaa , 但是正确的应该是select id from "ttt"."aaa" ,我想知道,mybatis-plus 在哪里配置可以查询指定的表空间ttt。二...
2024-03-07mybatis+mysql环境下uuid存储优化
1问题uuid采用char(32)或char(36)存储的话,需要占用32或36个字节。为节省存储空间,改为binary(16),占用16字节。对于500W行的表,可节省7.4G的空间。mybatis中没有默认的type handler来完成uuid类型<->binary类型的相互转换,需要自定义一个type handler。下面就详细地介绍如何实现。2 环境mybatis 3.5.3mysql 5.7.21java 8...
2024-01-10Mybatis-Plus 通用CRUD的详细操作
目录1、插入操作 1.1 方法定义1.2 测试用例1.3 测试1.4 @TableField2、更新操作2.1 根据id更新2.2 根据条件更新3、删除操作3.1 deleteById3.2 deleteByMap3.3 delete3.4 deleteBatchIds4、查询操作4.1 selectById4.2 selectBatchIds4.3 selectOne4.4 selectCount4.5 selectList4.6 selectPage5 SQL注入的原理通过前面的学习,我们了解到通过继承...
2024-01-10Mybatis-Plus 多表联查分页的实现代码
上一节,简单讲述了 Mybatis-Plus 搭建与使用入门,这一节,简单讲一下如何使用 MP 实现多表分页。分析使用的工程,依旧是 spring-boot,关于分页,官网给出了一个单表的demo,其实多表分页实现原理相同,都是通过 mybatis 的拦截器(拦截器做了什么?他会在你的 sql 执行之前,为你做一些事情,例如...
2024-01-10MyBatis Plus 入门使用详细教程
一、MyBatis Plus 介绍MyBatis Plus 是国内人员开发的 MyBatis 增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。MyBatis Plus 的核心功能有:支持通用的 CRUD、代码生成器与条件构造器。通用 CRUD:定义好 Mapper 接口后,只需要继承 BaseMapper<T> 接口即可获得通用的增删改查功能,无需...
2024-01-10mybatis-plus 通用字段自动化(如逻辑删除和更新时间等)
一般来说某些项目比较规范的情况下,大多数表都会有逻辑删除字段和通用字段,例如更新时间,创建时间,更新人,创建人等等,但是在代码开发上会产生很多冗余的代码,逻辑删除的话,自己写比较繁琐,而且容易有遗漏逻辑。本来打算自己写切面去实现,偶然发现mybatis-plus已经帮封装实现了,...
2024-01-10基于Mybatis-Plus的CRUD的实现
使用mybatis-plus自动生成了5个模块(xml/bean/mapper/service/controller)的代码,这里练习一下mybatis-plus框架下的CRUD.还是原先的那个springboot项目.mybatis-plus也是mybatis的增强版,它并未改变mybatis原有功能,只是在传统mybatis原有基础上又新增了一些功能,用以提高开发效率.比如,在mybatis-plus框架下,项目mapper层接口可通过...
2024-01-10MyBatis Plus工具快速入门使用教程
MyBatis-plus有什么特色 1.代码生成 2.条件构造器 对我而言,主要的目的是使用它强大的条件构建器. 快速使用步骤: 1.添加pom文件依赖<dependency> <groupId>org.apache.velocity</groupId> <artifactId>velocity</artifactId> <version>1.7</version></dependency><dependency> <groupId>com.baomidou</groupId> <a...
2024-01-10浅谈Mybatis+mysql 存储Date类型的坑
场景:把一个时间字符串转成Date,存进Mysql。时间天数会比实际时间少1天,也可能是小时少了13-14小时Mysql的时区是CST(使用语句:show VARIABLES LIKE '%time_zone%'; 查)先放总结:修改方法:1. 修改数据库时区2. 在jdbc.url里加后缀 &serverTimezone=GMT%2B83. 代码里设置时区,给SimpleDateFormat.setTimeZone(...)例外:n...
2024-01-10mybatis-plus使用静态工具查询时出现语句错误报错?
两个类,User中包含order@Data@AllArgsConstructor@NoArgsConstructor@ToString@Table(name = "user_order",charset = MySqlCharsetConstant.UTF8,engine = MySqlEngineConstant.InnoDB)public class Order { @Col...
2024-03-01